{"componentChunkName":"component---src-templates-post-jsx","path":"/[파이썬] itertools 에 대해서 알아보자/","result":{"data":{"site":{"siteMetadata":{"title":"jigglog","author":"JIGGLYPOP","homepage":"http://jigglog.s3-website.ap-northeast-2.amazonaws.com"}},"post":{"id":"2d9a82c6-8278-5de5-88ca-657e7fa12181","html":"<h1 id=\"itertools에-대해서-알아보자\" style=\"position:relative;\"><a href=\"#itertools%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90\" aria-label=\"itertools에 대해서 알아보자 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>itertools에 대해서 알아보자</h1>\n<h2 id=\"itertools란\" style=\"position:relative;\"><a href=\"#itertools%EB%9E%80\" aria-label=\"itertools란 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>itertools란?</h2>\n<p>Python 내장 라이브러리인 itertools는 Python에서 제공하는 자신만의 반복자를 만드는 휼륭한 모듈입니다. 특정 배열에 대하여 순열이나 조합을 만들어 이를 이용하는 문제를 풀 때, 직접 구현해도 되지만, 이 itertools를 이용한다면 효율적으로 반복자를 구할 수 있습니다.</p>\n<p>라는 설명입니다. 대부분 코테 준비하시는 분들은 순열조합 라이브러리로 쓰셨을 텐데요, 이 설명만으로는 자세히 알기 어려우니 좀 더 예를 볼까요?</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> itertools</code></pre></div>\n<p>임포트 후 알아봅시다</p>\n<h2 id=\"1-순열-조합-중복순열-데카르트곱\" style=\"position:relative;\"><a href=\"#1-%EC%88%9C%EC%97%B4-%EC%A1%B0%ED%95%A9-%EC%A4%91%EB%B3%B5%EC%88%9C%EC%97%B4-%EB%8D%B0%EC%B9%B4%EB%A5%B4%ED%8A%B8%EA%B3%B1\" aria-label=\"1 순열 조합 중복순열 데카르트곱 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. 순열, 조합, 중복순열, 데카르트곱</h2>\n<h3 id=\"1-product\" style=\"position:relative;\"><a href=\"#1-product\" aria-label=\"1 product permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1) product()</h3>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> itertools\n\nitertools<span class=\"token punctuation\">.</span>product<span class=\"token punctuation\">(</span><span class=\"token string\">'ABCD'</span><span class=\"token punctuation\">,</span> repeat<span class=\"token operator\">=</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\"># 결과: AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD</span></code></pre></div>\n<p><strong>인수</strong>: p, q, … [ 반복 = 1 ]</p>\n<p><strong>결과</strong>: 중첩된 for loop에 해당하는 데카르트의 곱</p>\n<h3 id=\"2-permutations\" style=\"position:relative;\"><a href=\"#2-permutations\" aria-label=\"2 permutations permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2) permutations()</h3>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> itertools\n\nitertools<span class=\"token punctuation\">.</span>permutations<span class=\"token punctuation\">(</span><span class=\"token string\">'ABCD'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\"># 결과: AB AC AD BA BC BD CA CB CD DA DB DC</span></code></pre></div>\n<p><strong>인수</strong>: <code class=\"language-text\">p \\[, r\\]</code></p>\n<p><strong>결과</strong>: <code class=\"language-text\">r</code> 길이 tuple, 가능한 모든 순서, 반복 X</p>\n<h3 id=\"3-combinations\" style=\"position:relative;\"><a href=\"#3-combinations\" aria-label=\"3 combinations permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3) combinations()</h3>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> itertools\n\nitertools<span class=\"token punctuation\">.</span>combinations<span class=\"token punctuation\">(</span><span class=\"token string\">'ABCD'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\"># 결과: AB AC AD BC BD CD</span></code></pre></div>\n<p><strong>인수</strong>: <code class=\"language-text\">p</code>, <code class=\"language-text\">r</code></p>\n<p><strong>결과</strong>: r 길이 tuple, 정렬된 순서, 반복 X</p>\n<h3 id=\"4-combinationswithreplacement\" style=\"position:relative;\"><a href=\"#4-combinationswithreplacement\" aria-label=\"4 combinationswithreplacement permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4) combinations<em>with</em>replacement()</h3>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> itertools\n\nitertools<span class=\"token punctuation\">.</span>combinations_with_replacement<span class=\"token punctuation\">(</span><span class=\"token string\">'ABCD'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\"># 결과: AA AB AC AD BB BC BD CC CD DD</span></code></pre></div>\n<p><strong>인수</strong>: <code class=\"language-text\">p</code>, <code class=\"language-text\">r</code></p>\n<p><strong>결과</strong>: <code class=\"language-text\">r</code> 길이 tuple, 정렬된 순서, 반복 O</p>\n<table>\n<thead>\n<tr>\n<th><strong>반복자</strong></th>\n<th><strong>인수</strong></th>\n<th><strong>결과</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>product()</td>\n<td>p, q, … [ 반복 = 1 ]</td>\n<td>중첩된 for loop에 해당하는 데카르트의 곱</td>\n</tr>\n<tr>\n<td>permutations()</td>\n<td>p [, r]</td>\n<td>r 길이 tuple, 가능한 모든 순서, 반복 X</td>\n</tr>\n<tr>\n<td>combinations()</td>\n<td>p, r</td>\n<td>r 길이 tuple, 정렬된 순서, 반복 X</td>\n</tr>\n<tr>\n<td>combinations<em>with</em>replacement()</td>\n<td>p, r</td>\n<td>r 길이 tuple, 정렬된 순서, 반복 O</td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"1-chain\" style=\"position:relative;\"><a href=\"#1-chain\" aria-label=\"1 chain permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. chain()</h2>\n<hr>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">letters <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'a'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'b'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'c'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'d'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'e'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'f'</span><span class=\"token punctuation\">]</span>\nbooleans <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\ndecimals <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0.1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0.7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0.4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0.4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0.5</span><span class=\"token punctuation\">]</span>\n\n<span class=\"token keyword\">print</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>itertools<span class=\"token punctuation\">.</span>chain<span class=\"token punctuation\">(</span>letters<span class=\"token punctuation\">,</span> booleans<span class=\"token punctuation\">,</span> decimals<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n\n<span class=\"token comment\"># >> ['a', 'b', 'c', 'd', 'e', 'f', 1, 0, 1, 0, 0, 1, 0.1, 0.7, 0.4, 0.4, 0.5]</span></code></pre></div>\n<p>리스트( lists/tuples/iterables ) 를 연결합니다. chain된 3개의 리스트가 합쳐집니다.</p>\n<h2 id=\"2-count\" style=\"position:relative;\"><a href=\"#2-count\" aria-label=\"2 count permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. count()</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> count <span class=\"token punctuation\">,</span> izip\n<span class=\"token keyword\">for</span> number<span class=\"token punctuation\">,</span> letter <span class=\"token keyword\">in</span> izip<span class=\"token punctuation\">(</span>count<span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'a'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'b'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'c'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'d'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'e'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span> <span class=\"token string\">'{0}: {1}'</span><span class=\"token punctuation\">.</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>number<span class=\"token punctuation\">,</span> letter<span class=\"token punctuation\">)</span>\n\n\n<span class=\"token operator\">>></span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span> a  <span class=\"token number\">10</span><span class=\"token punctuation\">:</span> b  <span class=\"token number\">20</span><span class=\"token punctuation\">:</span> c  <span class=\"token number\">30</span><span class=\"token punctuation\">:</span> d  <span class=\"token number\">40</span><span class=\"token punctuation\">:</span> e</code></pre></div>\n<p>count 는 반복하고자 하는 최대수를 미리 알지 않아도 되는 경우 사용됩니다. 여기서는 0 에서 시작해서 10씩 5개의 요소에 대해서 필요한 만큼 증가시켜 주고 있네요. 간단하게 말해서 시작과 step 만 있는 range 함수 느낌도 납니다.</p>\n<h2 id=\"3-izip\" style=\"position:relative;\"><a href=\"#3-izip\" aria-label=\"3 izip permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. izip</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> izip\n\n<span class=\"token keyword\">print</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>izip<span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'a'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'b'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'c'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token operator\">>></span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'a'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'b'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'c'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span></code></pre></div>\n<p>파이썬에서는 이미 요소를 튜플에 결합하는 zip () 함수가 표준 라이브러리에 있으며 거의 같은 방식으로 작동하지만 약간의 성능 향상을 위해 iterable 객체를 반환합니다.</p>\n<h2 id=\"4-imap\" style=\"position:relative;\"><a href=\"#4-imap\" aria-label=\"4 imap permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. imap</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> imap\n\n<span class=\"token keyword\">print</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>imap<span class=\"token punctuation\">(</span><span class=\"token keyword\">lambda</span> x<span class=\"token punctuation\">:</span> x <span class=\"token operator\">*</span> x<span class=\"token punctuation\">,</span> <span class=\"token builtin\">xrange</span><span class=\"token punctuation\">(</span><span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\"># [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]</span></code></pre></div>\n<p>파이썬에서는 이미 요소를 튜플에 결합하는 map () 함수가 표준 라이브러리에 있으며 거의 같은 방식으로 작동</p>\n<p>Python은 Haskell처럼 모든 인자가 지연 평가되는 언어는 아니지만 워낙 모든 함수가 반복자를 주고 받게 되어 있다보니 반복자의 연쇄가 깊게 이뤄진다. 반복자의 연쇄가 깊다는 것은 함수 **호출 스택이 깊어도 맨 끝에서 아래까지 “의도”가 잘 전달된다는 뜻이다.예를 들어 아래의 코드를 보자.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">odd_numbers_to_10 = itertools.takewhile(lambda i: i &lt;= 10, (x for x in xrange(1000) if x % 2))</code></pre></div>\n<p>너무나 작위적인 예제지만, 의도가 깊게 관통하는 코드의 예로서는 읽을만 하다. 결국 최종적으로는 “0 이상 10 이하의 홀수 목록”을 원하는 건데, 최초로 제공되는 소스인 <code class=\"language-text\">xrange(1000)</code>은 10을 초과하는 숫자는 생성하지 않는다. 의도가 잘 전달된다는 것은 이러한 뜻이다. 의도가 전달되지 않는 예를 만드려면 <code class=\"language-text\">xrange</code>를 <code class=\"language-text\">range</code>로 바꾸면 된다</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">odd_numbers_to_10 = itertools.takewhile(lambda i: i &lt;= 10, (x for x in range(1000) if x % 2))</code></pre></div>\n<p>이 코드는 최종적으로 얻고자 하는 값이 결국 10 이하의 숫자들뿐임에도 <code class=\"language-text\">range(1000)</code>이 1000개의 수가 담긴 큰 리스트를 만들어내는도록 냅둔다. 공간도 낭비고 시간도 낭비다. 만약 우리가 <code class=\"language-text\">xrange(1000)</code>나 <code class=\"language-text\">range(1000)</code> 자리에 무한개의 숫자를 만들어내는 함수를 넣는다면 결정적인 차이가 발생한다. 만약 그 함수가 반복자를 반환한다면 우리가 처음 <code class=\"language-text\">xrange(1000)</code>을 썼던 코드와 효율에 차이가 없겠지만, 리스트를 만들어낸다면 리스트를 만들다가 메모리가 꽉 차서 뻗고 말 것이다.</p>\n<h2 id=\"5-islice\" style=\"position:relative;\"><a href=\"#5-islice\" aria-label=\"5 islice permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. islice</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> islice\n\n<span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> islice<span class=\"token punctuation\">(</span><span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span> i\n\n<span class=\"token operator\">>></span> 결과\n<span class=\"token operator\">>></span> <span class=\"token number\">0</span> <span class=\"token number\">1</span> <span class=\"token number\">2</span> <span class=\"token number\">3</span> <span class=\"token number\">4</span></code></pre></div>\n<p>[0 ~ 10] 의 반복가능 객체에서 5번째까지만 결과값을 반환하는 기능입니다. 알고리즘에서 사용할 수 있겠습니다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> islice<span class=\"token punctuation\">(</span><span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span> i\n\n<span class=\"token operator\">>></span> 결과\n<span class=\"token operator\">>></span> <span class=\"token number\">0</span> <span class=\"token number\">10</span> <span class=\"token number\">20</span> <span class=\"token number\">30</span> <span class=\"token number\">40</span> <span class=\"token number\">50</span> <span class=\"token number\">60</span> <span class=\"token number\">70</span> <span class=\"token number\">80</span> <span class=\"token number\">90</span></code></pre></div>\n<p>islice () 함수는 slice () 함수와 동일하게 작동합니다. 첫 번째 매개 변수는 반복 가능한 객체이고, 두 번째 매개 변수는 시작 색인입니다. 세 번째 매개 변수는 끝 색인입니다. 마지막 매개 변수는 각 반복 후에 건너 뛸 수있는 단계 또는 숫자입니다.</p>\n<p><strong>tee</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">from itertools import tee\ni1, i2, i3 = tee(xrange(10), 3)print i1# &lt;itertools.tee object at 0x2a1fc68&gt;print list(i1)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print list(i1)# []print list(i2)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print list(i2)# []print list(i3)# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print list(i3)# []</code></pre></div>\n<p>설명:</p>\n<p>tee () 함수는 두 개의 매개 변수를 사용합니다. 첫 번째는 반복 가능이며 두 번째는 만들고자하는 복사본 갯수입니다. 예제를 보시다시피 한번 사용된 레퍼런스는 더 이상 값을 참조 하지 않습니다.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">r = (x for x in range(10) if x &lt; 6)\nprint r\n# &lt;generator object &lt;genexpr&gt; at 0x2a22870&gt;\ni1, i2, i3 = tee(r, 3)\nprint list(r)\n# [0, 1, 2, 3, 4, 5]\nprint list(i1)\n# []\nprint list(i2)\n# []\nprint list(i3)\n# []</code></pre></div>\n<p>설명:</p>\n<p>이렇게 원본의 제네레이터인 r 을 실행시키면 나머지 복제본들도 다 참조가 끊어 지는 특성이 있습니다.</p>\n<p><strong>cycle</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> cycle <span class=\"token punctuation\">,</span> izip\n<span class=\"token keyword\">for</span> number<span class=\"token punctuation\">,</span> letter <span class=\"token keyword\">in</span> izip<span class=\"token punctuation\">(</span>cycle<span class=\"token punctuation\">(</span><span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'a'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'b'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'c'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'d'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'e'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span> <span class=\"token string\">'{0}: {1}'</span><span class=\"token punctuation\">.</span><span class=\"token builtin\">format</span><span class=\"token punctuation\">(</span>number<span class=\"token punctuation\">,</span> letter<span class=\"token punctuation\">)</span>\n    <span class=\"token comment\"># 0: a</span>\n    <span class=\"token comment\"># 1: b</span>\n    <span class=\"token comment\"># 0: c</span>\n    <span class=\"token comment\"># 1: d</span>\n    <span class=\"token comment\"># 0: e</span></code></pre></div>\n<p>설명:</p>\n<p>순환 가능한 객체에서 요소를 반복적으로 생성합니다. count 는 계속 증가하구요. 둘 모두 함께 계산되어지는 오른쪽 리스트에 따라 한정지어지는 특성을 지녔습니다.</p>\n<p><strong>repeat</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> repeat\n<span class=\"token keyword\">print</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>repeat<span class=\"token punctuation\">(</span><span class=\"token string\">'Hello, world!'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\"># ['Hello, world!', 'Hello, world!', 'Hello, world!']</span></code></pre></div>\n<p>설명: 요소를 반복합니다. 반복되는 갯수를 지정 합니다.</p>\n<p><strong>dropwhile</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> dropwhile\n<span class=\"token keyword\">print</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>dropwhile<span class=\"token punctuation\">(</span><span class=\"token keyword\">lambda</span> x<span class=\"token punctuation\">:</span> x <span class=\"token operator\">&lt;</span> <span class=\"token number\">10</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">11</span><span class=\"token punctuation\">,</span> <span class=\"token number\">34</span><span class=\"token punctuation\">,</span> <span class=\"token number\">66</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\"># [11, 34, 66, 100, 1]</span></code></pre></div>\n<p>설명: 필터링 함수중 하나로서, 10보다 큰것이 나올 때까지 모든 요소는 드랍시키고 나머지것을 리턴함.</p>\n<p><strong>takewhile</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> takewhile\n<span class=\"token keyword\">print</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>takewhile<span class=\"token punctuation\">(</span><span class=\"token keyword\">lambda</span> x<span class=\"token punctuation\">:</span> x <span class=\"token operator\">&lt;</span> <span class=\"token number\">10</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">11</span><span class=\"token punctuation\">,</span> <span class=\"token number\">34</span><span class=\"token punctuation\">,</span> <span class=\"token number\">66</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\"># [1, 4, 6, 7]</span></code></pre></div>\n<p>설명: 필터링 함수중 하나로서, 10보다 큰 것이 나올때까지의 모든 요소를 리턴함.</p>\n<h2 id=\"ifilter\" style=\"position:relative;\"><a href=\"#ifilter\" aria-label=\"ifilter permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ifilter</h2>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> ifilter\n<span class=\"token keyword\">print</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span>ifilter<span class=\"token punctuation\">(</span><span class=\"token keyword\">lambda</span> x<span class=\"token punctuation\">:</span> x <span class=\"token operator\">&lt;</span> <span class=\"token number\">10</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">,</span> <span class=\"token number\">7</span><span class=\"token punctuation\">,</span> <span class=\"token number\">11</span><span class=\"token punctuation\">,</span> <span class=\"token number\">34</span><span class=\"token punctuation\">,</span> <span class=\"token number\">66</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\"># [1, 4, 6, 7, 1]</span></code></pre></div>\n<p>설명: 필터링 함수중 하나로서, 10보다 작은 모든것을 리턴함.</p>\n<p><strong>groupby</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> operator <span class=\"token keyword\">import</span> itemgetter\n<span class=\"token keyword\">from</span> itertools <span class=\"token keyword\">import</span> groupby\n\nattempts <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token punctuation\">(</span><span class=\"token string\">'dan'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">87</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">(</span><span class=\"token string\">'erik'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">95</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">(</span><span class=\"token string\">'jason'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">79</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">(</span><span class=\"token string\">'erik'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">97</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">(</span><span class=\"token string\">'dan'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">]</span>\n\n<span class=\"token comment\"># Sort the list by name for groupby</span>\nattempts<span class=\"token punctuation\">.</span>sort<span class=\"token punctuation\">(</span>key<span class=\"token operator\">=</span>itemgetter<span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\"># Create a dictionary such that name: scores_list</span>\n<span class=\"token keyword\">print</span> <span class=\"token punctuation\">{</span>key<span class=\"token punctuation\">:</span> <span class=\"token builtin\">sorted</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span>itemgetter<span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> value<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">for</span> key<span class=\"token punctuation\">,</span> value <span class=\"token keyword\">in</span> groupby<span class=\"token punctuation\">(</span>attempts<span class=\"token punctuation\">,</span> key<span class=\"token operator\">=</span>itemgetter<span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">}</span>\n<span class=\"token comment\"># {'dan': [87, 100], 'jason': [79], 'erik': [95, 97]}</span></code></pre></div>\n<p>key 함수로 itemgetter(0) 를 이용하여 정렬후, 첫번째 요소로 groupby 함. (정렬해야함)</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">from</span> collections <span class=\"token keyword\">import</span> defaultdict\n\ncounts <span class=\"token operator\">=</span> defaultdict<span class=\"token punctuation\">(</span><span class=\"token builtin\">list</span><span class=\"token punctuation\">)</span>\nattempts <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">(</span><span class=\"token string\">'dan'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">87</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token string\">'erik'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">95</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token string\">'jason'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">79</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token string\">'erik'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">97</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token string\">'dan'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n\n<span class=\"token keyword\">for</span> <span class=\"token punctuation\">(</span>name<span class=\"token punctuation\">,</span> score<span class=\"token punctuation\">)</span> <span class=\"token keyword\">in</span> attempts<span class=\"token punctuation\">:</span>\n    counts<span class=\"token punctuation\">[</span>name<span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>score<span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">print</span> counts\n<span class=\"token comment\"># defaultdict(&lt;type 'list'>, {'dan': [87, 100], 'jason': [79], 'erik': [95, 97]})</span></code></pre></div>\n<p>defaultdict 사용합니다. 널값에 대한 체크를 생략할 수 있는 편의 제공. </p>","tableOfContents":"<ul>\n<li>\n<p><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#itertools%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90\">itertools에 대해서 알아보자</a></p>\n<ul>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#itertools%EB%9E%80\">itertools란?</a></li>\n<li>\n<p><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#1-%EC%88%9C%EC%97%B4-%EC%A1%B0%ED%95%A9-%EC%A4%91%EB%B3%B5%EC%88%9C%EC%97%B4-%EB%8D%B0%EC%B9%B4%EB%A5%B4%ED%8A%B8%EA%B3%B1\">1. 순열, 조합, 중복순열, 데카르트곱</a></p>\n<ul>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#1-product\">1) product()</a></li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#2-permutations\">2) permutations()</a></li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#3-combinations\">3) combinations()</a></li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#4-combinationswithreplacement\">4) combinations<em>with</em>replacement()</a></li>\n</ul>\n</li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#1-chain\">1. chain()</a></li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#2-count\">2. count()</a></li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#3-izip\">3. izip</a></li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#4-imap\">4. imap</a></li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#5-islice\">5. islice</a></li>\n<li><a href=\"/%5B%ED%8C%8C%EC%9D%B4%EC%8D%AC%5D%20itertools%20%EC%97%90%20%EB%8C%80%ED%95%B4%EC%84%9C%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90/#ifilter\">ifilter</a></li>\n</ul>\n</li>\n</ul>","frontmatter":{"title":"[파이썬] itertools 에 대해서 알아보자","path":"/[파이썬] itertools 에 대해서 알아보자/","images":["images/4.jpg"],"category":"알고리즘","tags":["파이썬","itertools","알고리즘"],"date":"2020-07-15T17:00:00.000Z","components":null,"tweets":null,"summary":"파이썬으로 순열, 조합을 빠르게 구해주는 라이브러리"}},"posts":{"edges":[{"node":{"frontmatter":{"type":"portfolio","title":"MOIJA","images":["moija/images/moija.png","moija/images/moija1.png","moija/images/moija2.png","moija/images/moija3.png","moija/images/moija4.png","moija/images/moija5.png"],"path":"/portfolios/moija/","tags":null,"date":"2022-03-02T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"VUELOG","images":["vuelog/images/vuelog.png","vuelog/images/vuelog1.png","vuelog/images/vuelog2.png","vuelog/images/vuelog3.png","vuelog/images/vuelog4.png","vuelog/images/vuelog5.png","vuelog/images/vuelog6.png"],"path":"/portfolios/VUELOG/","tags":null,"date":"2022-03-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"DT CENTER","images":["dtcenter/images/dtcenter.png","dtcenter/images/dtcenter1.png","dtcenter/images/dtcenter2.png","dtcenter/images/dtcenter3.png"],"path":"/portfolios/DT CENTER/","tags":null,"date":"2022-02-21T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"COLORBERRY","images":["ColorBerry/images/colorberry.png","ColorBerry/images/colorberry2.png","ColorBerry/images/colorberry3.png","ColorBerry/images/colorberry4.png","ColorBerry/images/colorberry5.png","ColorBerry/images/colorberry6.png","ColorBerry/images/colorberry7.png","ColorBerry/images/colorberry8.png"],"path":"/portfolios/COLORBERRY/","tags":null,"date":"2022-02-20T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 요약","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 요약/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2021-0417T09:24:00000Z","summary":"[2020] 정보 처리 기사 실기 요약 입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node/","tags":["벡엔드","개발자","면접","기술면접","node"],"date":"2021-04-20T01:00:00.000Z","summary":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue/","tags":["프론트엔드","개발자","면접","기술면접","Vue"],"date":"2021-04-15T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)/","tags":["프론트엔드","개발자","면접","기술면접","Vue"],"date":"2021-04-15T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS/","tags":["프론트엔드","개발자","면접","기술면접","CSS"],"date":"2021-04-14T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React/","tags":["프론트엔드","개발자","면접","기술면접","React"],"date":"2021-04-14T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React"}}},{"node":{"frontmatter":{"type":null,"title":"RxJs 정리","images":["images/2.jpg"],"path":"/RxJs 정리/","tags":["벡엔드","개발자","프론트엔드","기술면접","RxJs"],"date":"2021-04-09T01:00:00.000Z","summary":"RxJs 정리"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택/","tags":["벡엔드","개발자","면접","기술면접","기술스택"],"date":"2021-04-09T01:00:00.000Z","summary":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CS","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - cs/","tags":["벡엔드","개발자","면접","기술면접","CS"],"date":"2021-04-08T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트 파트"}}},{"node":{"frontmatter":{"type":null,"title":"three.js 공부","images":["images/2.jpg"],"path":"/three.js 공부/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"three.js 공부"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1)/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1) 파트"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2)/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2) 파트"}}},{"node":{"frontmatter":{"type":null,"title":"react 공부","images":["images/1.jpg"],"path":"/react 공부/","tags":["react.js","프론트엔드"],"date":"2021-04-05T12:23:00.000Z","summary":"react 공부"}}},{"node":{"frontmatter":{"type":null,"title":"vue 공부 1일차","images":["images/1.jpg"],"path":"/vue공부1일차/","tags":["vue.js","프론트엔드"],"date":"2021-04-04T12:23:00.000Z","summary":"vue 공부 1일차"}}},{"node":{"frontmatter":{"type":null,"title":"vue 공부 1일차","images":["images/1.jpg"],"path":"/vue공부1일차/","tags":["vue.js","프론트엔드"],"date":"2021-04-04T12:23:00.000Z","summary":"vue 공부 1일차"}}},{"node":{"frontmatter":{"type":null,"title":"history api 정리","images":["images/1.jpg"],"path":"/history api 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-03-03T12:23:00.000Z","summary":"history api 정리"}}},{"node":{"frontmatter":{"type":null,"title":"프로그래머스 데브매칭 고양이 정리","images":["images/1.jpg"],"path":"/프로그래머스 데브매칭 고양이 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-03-01T12:23:00.000Z","summary":"프로그래머스 데브매칭 고양이 정리입니다."}}},{"node":{"frontmatter":{"type":"portfolio","title":"ANGULOG","images":["angulog/images/angulog.png","angulog/images/angulog2.png","angulog/images/angulog3.png","angulog/images/angulog4.png","angulog/images/angulog5.png","angulog/images/angulog6.png"],"path":"/portfolios/ANGULOG/","tags":null,"date":"2021-02-23T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"MBTI WORLD","images":["mbtiworld/images/mbtiworld.png","mbtiworld/images/mbtiworld2.png","mbtiworld/images/mbtiworld3.png","mbtiworld/images/mbtiworld4.png","mbtiworld/images/mbtiworld5.png","mbtiworld/images/mbtiworld6.png","mbtiworld/images/mbtiworld7.png","mbtiworld/images/mbtiworld8.png","mbtiworld/images/mbtiworld9.png","mbtiworld/images/mbtiworld10.png"],"path":"/portfolios/MBTI WORLD/","tags":null,"date":"2021-02-19T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-02T12:01:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:23:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:23:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:21:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 리눅스 마스터 2급 2차 요점 정리","images":["images/1.jpg"],"path":"/[2020] 리눅스 마스터 2급 2차 요점 정리 - 리눅스 일반/","tags":["리눅스 마스터 2급","자격증","소프트웨어"],"date":"2020-12-03T12:21:00.000Z","summary":"[2020] 리눅스 마스터 2급 2차 (1) 리눅스 일반 요점 정리입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 16-단답형 문제(4)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 16-단답형 문제(4)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:24:00000Z","summary":"[2020] 정보 처리 기사 실기 16-단답형 문제(4)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 15-단답형 문제(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 15-단답형 문제(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:22:00000Z","summary":"[2020] 정보 처리 기사 실기 15-단답형 문제(3)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 14-단답형 문제(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 14-단답형 문제(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:21:00000Z","summary":"[2020] 정보 처리 기사 실기 14-단답형 문제(2)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 13-단답형 문제(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 13-단답형 문제(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-14T16:21:00000Z","summary":"[2020] 정보 처리 기사 실기 13-단답형 문제(1)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 12-정보 용어 정리","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 12-정보 용어 정리/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-14T02:21:00.000Z","summary":"2020 정보 처리 기사 실기 12-정보 용어 정리 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 11-제품 소프트웨어 패키징","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 11-제품 소프트웨어 패키징/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T23:03:00.000Z","summary":"2020 정보 처리 기사 제품 소프트웨어 패키징 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:03:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:02:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:01:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 9-소프트웨어 보안 구축","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 9-소프트웨어 보안 구축/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T19:00:00.000Z","summary":"2020 정보 처리 기사 소프트웨어 보안 구축 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 8-SQL 응용","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 8-SQL 응용/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T12:45:00.000Z","summary":"2020 정보 처리 기사 SQL 응용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 6-화면 설계","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 6-화면 설계/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T17:00:00.000Z","summary":"2020 정보 처리 기사 화면 설계 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 7-애플리케이션 테스트 관리","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 7-애플리케이션 테스트 관리/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T17:00:00.000Z","summary":"2020 정보 처리 기사 애플리케이션 테스트 관리 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 5-서버 프로그램 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 5-서버 프로그램 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T06:31:00.000Z","summary":"2020 정보 처리 기사 서버 프로그램 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 4-통합 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 4-통합 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T05:31:00.000Z","summary":"2020 정보 처리 기사 통합 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 3-데이터 입출력 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 3-데이터 입출력 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-15T17:22:00.000Z","summary":"2020 정보 처리 기사 데이터 입출력 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 2-요구 사항 확인","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 2-요구 사항 확인/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-15T17:21:00.000Z","summary":"2020 정보 처리 기사 요구 사항 확인 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[파이썬] itertools 에 대해서 알아보자","images":["images/4.jpg"],"path":"/[파이썬] itertools 에 대해서 알아보자/","tags":["파이썬","itertools","알고리즘"],"date":"2020-07-15T17:00:00.000Z","summary":"파이썬으로 순열, 조합을 빠르게 구해주는 라이브러리"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T22:23:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T22:21:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T20:21:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[파이썬] 파이썬을 이용한 이진탐색트리 구현","images":["images/4.jpg"],"path":"/[파이썬] 파이썬을 이용한 이진탐색트리 구현/","tags":["파이썬","알고리즘","이진탐색트리"],"date":"2020-07-06T22:06:00.000Z","summary":"파이썬을 이용한 이진탐색트리 구현"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-03T01:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(2)(운영체제)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(2)(운영체제)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-02T01:00:00.000Z","summary":"응용 SW 기초 기술 활용"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-01T01:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-03T03:05:00.000Z","summary":"정보시스템 구축 관리"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-02T03:05:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-01T03:05:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-03T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-02T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-01T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-03T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-02T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-01T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-01-03T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-01-02T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)/","tags":["정보처리기사 필기","정보처리기사","필기","데이터베이스 구축"],"date":"2020-01-01T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)"}}},{"node":{"frontmatter":{"type":"portfolio","title":"CAPTURE BLOG","images":["CaptureBlog/images/capture1.png","CaptureBlog/images/capture2.png","CaptureBlog/images/capture3.png","CaptureBlog/images/capture4.png","CaptureBlog/images/capture5.png","CaptureBlog/images/capture6.png"],"path":"/portfolios/CAPTURE BLOG/","tags":null,"date":"2020-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"LANGUAGE TOGETHER","images":["languageTogether/images/languagetogether.png","languageTogether/images/languagetogether2.png","languageTogether/images/languagetogether3.png","languageTogether/images/languagetogether4.png","languageTogether/images/languagetogether5.png","languageTogether/images/languagetogether6.png","languageTogether/images/languagetogether7.png","languageTogether/images/languagetogether8.png","languageTogether/images/languagetogether9.png"],"path":"/portfolios/LANGUAGE TOGETHER/","tags":null,"date":"2018-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"MOVIE STAR","images":["moviestar/images/moviestar.png","moviestar/images/moviestar2.png","moviestar/images/moviestar3.png","moviestar/images/moviestar4.png"],"path":"/portfolios/MOVIE STAR/","tags":null,"date":"2018-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"resume","title":"Resume","images":null,"path":"/resume/","tags":null,"date":"2000-01-01T00:00:00.000Z","summary":null}}}]}},"pageContext":{}}}